<?php
/**
 * Created by PhpStorm.
 * User: ari
 * Date: 10/13/14
 * Time: 4:00 PM
 */
namespace BC\Games\Holdem\Hands;

interface IPokerHand
{
	/**
	 * Compare two hands
	 * @param IPokerHand $Hand
	 * @return int 0, <0, or >0
	 */
	function compare(IPokerHand $Hand);

	/**
	 * Return name of this hand
	 * @return String
	 */
	function getName();

	/**
	 * Get Hand rank
	 * @return int
	 */
	function getRank();

	/**
	 * @param bool $withNullDelimiter
	 * @return array;
	 */
	function getCards($withNullDelimiter=false);

	/**
	 * Returns a string representation of this poker hand
	 * @return String
	 */
	function __toString();

	// Static

	/**
	 * Tests a poker hand to see if it matches an array of cards
	 * @param array $cards
	 * @param IPokerHand[] $Matches
	 * @return bool true if the set of cards matches this poker hand
	 */
	static function match(Array $cards, &$Matches = array());
}

